package com.navi.loaddata.core.gpEntity;

import com.alibaba.fastjson.annotation.JSONField;
import com.navi.loaddata.core.entity.BaseEntity;

import javax.persistence.*;
import java.math.BigDecimal;
import java.sql.Timestamp;

/**
 * Created by Jay on 2018/3/22.
 */
@Entity
@Table(name = "wpp_sht_info", schema = "sor", catalog = "qmstst")
public class WppShtInfo extends BaseEntity {
    private String panelId;
    private String tftGlassId;
    private String cfGlassId;
    private String sn;
    private String lotId;
    private String groupId;
    private String bareGlassId;
    private String bareProduct;
    private String productIdAry;
    private String productIdCf;
    private String productIdOc1;
    private String productIdOc2;
    private String productIdBonging;
    private String productIdErp;
    private String workorderId;
    private String workorderIdRtp;
    private BigDecimal thickness;
    private String maskIdAry1320;
    private String maskIdAry2320;
    private String maskIdAry3320;
    private String maskIdAry4320;
    private String maskIdAry5320;
    private String ngMarkAry;
    private String ngMarkCf;
    private String abnormalFlag1Ary;
    private String abnormalFlag1Cf;
    private String glassJudgeAry;
    private String glassGradeAry;
    private String tftPnlGrade;
    private String glassJudgeCf;
    private String glassGradeCf;
    private String cfPnlGrade;
    private String ocPnlGradeCt1;
    private String ocPnlGradeCInsp;
    private String gradeWnsShip;
    private String ocPnlLosscodeCt1;
    private String ocPnlLosscodeCInsp;
    private String polLotIdTft;
    private String polPartNoTft;
    private String polLotIdCf;
    private String polPartNoCf;
    private String ownerId;
    private String productiontype;
    private String ownertype;
    private String ppboxId;
    private String palletId;
    private String destCustomerId;;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp tftStartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp tftShippingTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp cfStartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp cfShippingTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp ocStartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp oc1BankInTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp oc2StartTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp ocShippingTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp rmatimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp etlTimestamp;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Timestamp dbTimestamp;

    @Id
    @Column(name = "panel_id")
    public String getPanelId() {
        return panelId;
    }

    public void setPanelId(String panelId) {
        this.panelId = panelId;
    }

    @Basic
    @Column(name = "tft_glass_id")
    public String getTftGlassId() {
        return tftGlassId;
    }

    public void setTftGlassId(String tftGlassId) {
        this.tftGlassId = tftGlassId;
    }

    @Basic
    @Column(name = "cf_glass_id")
    public String getCfGlassId() {
        return cfGlassId;
    }

    public void setCfGlassId(String cfGlassId) {
        this.cfGlassId = cfGlassId;
    }

    @Basic
    @Column(name = "sn")
    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    @Basic
    @Column(name = "lot_id")
    public String getLotId() {
        return lotId;
    }

    public void setLotId(String lotId) {
        this.lotId = lotId;
    }

    @Basic
    @Column(name = "group_id")
    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    @Basic
    @Column(name = "bare_glass_id")
    public String getBareGlassId() {
        return bareGlassId;
    }

    public void setBareGlassId(String bareGlassId) {
        this.bareGlassId = bareGlassId;
    }

    @Basic
    @Column(name = "bare_product")
    public String getBareProduct() {
        return bareProduct;
    }

    public void setBareProduct(String bareProduct) {
        this.bareProduct = bareProduct;
    }

    @Basic
    @Column(name = "product_id_ary")
    public String getProductIdAry() {
        return productIdAry;
    }

    public void setProductIdAry(String productIdAry) {
        this.productIdAry = productIdAry;
    }

    @Basic
    @Column(name = "product_id_cf")
    public String getProductIdCf() {
        return productIdCf;
    }

    public void setProductIdCf(String productIdCf) {
        this.productIdCf = productIdCf;
    }

    @Basic
    @Column(name = "product_id_oc1")
    public String getProductIdOc1() {
        return productIdOc1;
    }

    public void setProductIdOc1(String productIdOc1) {
        this.productIdOc1 = productIdOc1;
    }

    @Basic
    @Column(name = "product_id_oc2")
    public String getProductIdOc2() {
        return productIdOc2;
    }

    public void setProductIdOc2(String productIdOc2) {
        this.productIdOc2 = productIdOc2;
    }

    @Basic
    @Column(name = "product_id_bonging")
    public String getProductIdBonging() {
        return productIdBonging;
    }

    public void setProductIdBonging(String productIdBonging) {
        this.productIdBonging = productIdBonging;
    }

    @Basic
    @Column(name = "product_id_erp")
    public String getProductIdErp() {
        return productIdErp;
    }

    public void setProductIdErp(String productIdErp) {
        this.productIdErp = productIdErp;
    }

    @Basic
    @Column(name = "workorder_id")
    public String getWorkorderId() {
        return workorderId;
    }

    public void setWorkorderId(String workorderId) {
        this.workorderId = workorderId;
    }

    @Basic
    @Column(name = "workorder_id_rtp")
    public String getWorkorderIdRtp() {
        return workorderIdRtp;
    }

    public void setWorkorderIdRtp(String workorderIdRtp) {
        this.workorderIdRtp = workorderIdRtp;
    }

    @Basic
    @Column(name = "thickness")
    public BigDecimal getThickness() {
        return thickness;
    }

    public void setThickness(BigDecimal thickness) {
        this.thickness = thickness;
    }

    @Basic
    @Column(name = "mask_id_ary_1320")
    public String getMaskIdAry1320() {
        return maskIdAry1320;
    }

    public void setMaskIdAry1320(String maskIdAry1320) {
        this.maskIdAry1320 = maskIdAry1320;
    }

    @Basic
    @Column(name = "mask_id_ary_2320")
    public String getMaskIdAry2320() {
        return maskIdAry2320;
    }

    public void setMaskIdAry2320(String maskIdAry2320) {
        this.maskIdAry2320 = maskIdAry2320;
    }

    @Basic
    @Column(name = "mask_id_ary_3320")
    public String getMaskIdAry3320() {
        return maskIdAry3320;
    }

    public void setMaskIdAry3320(String maskIdAry3320) {
        this.maskIdAry3320 = maskIdAry3320;
    }

    @Basic
    @Column(name = "mask_id_ary_4320")
    public String getMaskIdAry4320() {
        return maskIdAry4320;
    }

    public void setMaskIdAry4320(String maskIdAry4320) {
        this.maskIdAry4320 = maskIdAry4320;
    }

    @Basic
    @Column(name = "mask_id_ary_5320")
    public String getMaskIdAry5320() {
        return maskIdAry5320;
    }

    public void setMaskIdAry5320(String maskIdAry5320) {
        this.maskIdAry5320 = maskIdAry5320;
    }

    @Basic
    @Column(name = "ng_mark_ary")
    public String getNgMarkAry() {
        return ngMarkAry;
    }

    public void setNgMarkAry(String ngMarkAry) {
        this.ngMarkAry = ngMarkAry;
    }

    @Basic
    @Column(name = "ng_mark_cf")
    public String getNgMarkCf() {
        return ngMarkCf;
    }

    public void setNgMarkCf(String ngMarkCf) {
        this.ngMarkCf = ngMarkCf;
    }

    @Basic
    @Column(name = "abnormal_flag_1_ary")
    public String getAbnormalFlag1Ary() {
        return abnormalFlag1Ary;
    }

    public void setAbnormalFlag1Ary(String abnormalFlag1Ary) {
        this.abnormalFlag1Ary = abnormalFlag1Ary;
    }

    @Basic
    @Column(name = "abnormal_flag_1_cf")
    public String getAbnormalFlag1Cf() {
        return abnormalFlag1Cf;
    }

    public void setAbnormalFlag1Cf(String abnormalFlag1Cf) {
        this.abnormalFlag1Cf = abnormalFlag1Cf;
    }

    @Basic
    @Column(name = "glass_judge_ary")
    public String getGlassJudgeAry() {
        return glassJudgeAry;
    }

    public void setGlassJudgeAry(String glassJudgeAry) {
        this.glassJudgeAry = glassJudgeAry;
    }

    @Basic
    @Column(name = "glass_grade_ary")
    public String getGlassGradeAry() {
        return glassGradeAry;
    }

    public void setGlassGradeAry(String glassGradeAry) {
        this.glassGradeAry = glassGradeAry;
    }

    @Basic
    @Column(name = "tft_pnl_grade")
    public String getTftPnlGrade() {
        return tftPnlGrade;
    }

    public void setTftPnlGrade(String tftPnlGrade) {
        this.tftPnlGrade = tftPnlGrade;
    }

    @Basic
    @Column(name = "glass_judge_cf")
    public String getGlassJudgeCf() {
        return glassJudgeCf;
    }

    public void setGlassJudgeCf(String glassJudgeCf) {
        this.glassJudgeCf = glassJudgeCf;
    }

    @Basic
    @Column(name = "glass_grade_cf")
    public String getGlassGradeCf() {
        return glassGradeCf;
    }

    public void setGlassGradeCf(String glassGradeCf) {
        this.glassGradeCf = glassGradeCf;
    }

    @Basic
    @Column(name = "cf_pnl_grade")
    public String getCfPnlGrade() {
        return cfPnlGrade;
    }

    public void setCfPnlGrade(String cfPnlGrade) {
        this.cfPnlGrade = cfPnlGrade;
    }

    @Basic
    @Column(name = "oc_pnl_grade_ct1")
    public String getOcPnlGradeCt1() {
        return ocPnlGradeCt1;
    }

    public void setOcPnlGradeCt1(String ocPnlGradeCt1) {
        this.ocPnlGradeCt1 = ocPnlGradeCt1;
    }

    @Basic
    @Column(name = "oc_pnl_grade_c_insp")
    public String getOcPnlGradeCInsp() {
        return ocPnlGradeCInsp;
    }

    public void setOcPnlGradeCInsp(String ocPnlGradeCInsp) {
        this.ocPnlGradeCInsp = ocPnlGradeCInsp;
    }

    @Basic
    @Column(name = "grade_wns_ship")
    public String getGradeWnsShip() {
        return gradeWnsShip;
    }

    public void setGradeWnsShip(String gradeWnsShip) {
        this.gradeWnsShip = gradeWnsShip;
    }

    @Basic
    @Column(name = "oc_pnl_losscode_ct1")
    public String getOcPnlLosscodeCt1() {
        return ocPnlLosscodeCt1;
    }

    public void setOcPnlLosscodeCt1(String ocPnlLosscodeCt1) {
        this.ocPnlLosscodeCt1 = ocPnlLosscodeCt1;
    }

    @Basic
    @Column(name = "oc_pnl_losscode_c_insp")
    public String getOcPnlLosscodeCInsp() {
        return ocPnlLosscodeCInsp;
    }

    public void setOcPnlLosscodeCInsp(String ocPnlLosscodeCInsp) {
        this.ocPnlLosscodeCInsp = ocPnlLosscodeCInsp;
    }

    @Basic
    @Column(name = "pol_lot_id_tft")
    public String getPolLotIdTft() {
        return polLotIdTft;
    }

    public void setPolLotIdTft(String polLotIdTft) {
        this.polLotIdTft = polLotIdTft;
    }

    @Basic
    @Column(name = "pol_part_no_tft")
    public String getPolPartNoTft() {
        return polPartNoTft;
    }

    public void setPolPartNoTft(String polPartNoTft) {
        this.polPartNoTft = polPartNoTft;
    }

    @Basic
    @Column(name = "pol_lot_id_cf")
    public String getPolLotIdCf() {
        return polLotIdCf;
    }

    public void setPolLotIdCf(String polLotIdCf) {
        this.polLotIdCf = polLotIdCf;
    }

    @Basic
    @Column(name = "pol_part_no_cf")
    public String getPolPartNoCf() {
        return polPartNoCf;
    }

    public void setPolPartNoCf(String polPartNoCf) {
        this.polPartNoCf = polPartNoCf;
    }

    @Basic
    @Column(name = "owner_id")
    public String getOwnerId() {
        return ownerId;
    }

    public void setOwnerId(String ownerId) {
        this.ownerId = ownerId;
    }

    @Basic
    @Column(name = "productiontype")
    public String getProductiontype() {
        return productiontype;
    }

    public void setProductiontype(String productiontype) {
        this.productiontype = productiontype;
    }

    @Basic
    @Column(name = "ownertype")
    public String getOwnertype() {
        return ownertype;
    }

    public void setOwnertype(String ownertype) {
        this.ownertype = ownertype;
    }

    @Basic
    @Column(name = "ppbox_id")
    public String getPpboxId() {
        return ppboxId;
    }

    public void setPpboxId(String ppboxId) {
        this.ppboxId = ppboxId;
    }

    @Basic
    @Column(name = "pallet_id")
    public String getPalletId() {
        return palletId;
    }

    public void setPalletId(String palletId) {
        this.palletId = palletId;
    }

    @Basic
    @Column(name = "dest_customer_id")
    public String getDestCustomerId() {
        return destCustomerId;
    }

    public void setDestCustomerId(String destCustomerId) {
        this.destCustomerId = destCustomerId;
    }

    @Basic
    @Column(name = "tft_start_timestamp")
    public Timestamp getTftStartTimestamp() {
        return tftStartTimestamp;
    }

    public void setTftStartTimestamp(Timestamp tftStartTimestamp) {
        this.tftStartTimestamp = tftStartTimestamp;
    }

    @Basic
    @Column(name = "tft_shipping_timestamp")
    public Timestamp getTftShippingTimestamp() {
        return tftShippingTimestamp;
    }

    public void setTftShippingTimestamp(Timestamp tftShippingTimestamp) {
        this.tftShippingTimestamp = tftShippingTimestamp;
    }

    @Basic
    @Column(name = "cf_start_timestamp")
    public Timestamp getCfStartTimestamp() {
        return cfStartTimestamp;
    }

    public void setCfStartTimestamp(Timestamp cfStartTimestamp) {
        this.cfStartTimestamp = cfStartTimestamp;
    }

    @Basic
    @Column(name = "cf_shipping_timestamp")
    public Timestamp getCfShippingTimestamp() {
        return cfShippingTimestamp;
    }

    public void setCfShippingTimestamp(Timestamp cfShippingTimestamp) {
        this.cfShippingTimestamp = cfShippingTimestamp;
    }

    @Basic
    @Column(name = "oc_start_timestamp")
    public Timestamp getOcStartTimestamp() {
        return ocStartTimestamp;
    }

    public void setOcStartTimestamp(Timestamp ocStartTimestamp) {
        this.ocStartTimestamp = ocStartTimestamp;
    }

    @Basic
    @Column(name = "oc1_bank_in_timestamp")
    public Timestamp getOc1BankInTimestamp() {
        return oc1BankInTimestamp;
    }

    public void setOc1BankInTimestamp(Timestamp oc1BankInTimestamp) {
        this.oc1BankInTimestamp = oc1BankInTimestamp;
    }

    @Basic
    @Column(name = "oc2_start_timestamp")
    public Timestamp getOc2StartTimestamp() {
        return oc2StartTimestamp;
    }

    public void setOc2StartTimestamp(Timestamp oc2StartTimestamp) {
        this.oc2StartTimestamp = oc2StartTimestamp;
    }

    @Basic
    @Column(name = "oc_shipping_timestamp")
    public Timestamp getOcShippingTimestamp() {
        return ocShippingTimestamp;
    }

    public void setOcShippingTimestamp(Timestamp ocShippingTimestamp) {
        this.ocShippingTimestamp = ocShippingTimestamp;
    }

    @Basic
    @Column(name = "rmatimestamp")
    public Timestamp getRmatimestamp() {
        return rmatimestamp;
    }

    public void setRmatimestamp(Timestamp rmatimestamp) {
        this.rmatimestamp = rmatimestamp;
    }

    @Basic
    @Column(name = "etl_timestamp")
    public Timestamp getEtlTimestamp() {
        return etlTimestamp;
    }

    public void setEtlTimestamp(Timestamp etlTimestamp) {
        this.etlTimestamp = etlTimestamp;
    }

    @Basic
    @Column(name = "db_timestamp")
    public Timestamp getDbTimestamp() {
        return dbTimestamp;
    }

    public void setDbTimestamp(Timestamp dbTimestamp) {
        this.dbTimestamp = dbTimestamp;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        WppShtInfo that = (WppShtInfo) o;

        if (panelId != null ? !panelId.equals(that.panelId) : that.panelId != null) return false;
        if (tftGlassId != null ? !tftGlassId.equals(that.tftGlassId) : that.tftGlassId != null) return false;
        if (cfGlassId != null ? !cfGlassId.equals(that.cfGlassId) : that.cfGlassId != null) return false;
        if (sn != null ? !sn.equals(that.sn) : that.sn != null) return false;
        if (lotId != null ? !lotId.equals(that.lotId) : that.lotId != null) return false;
        if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != null) return false;
        if (bareGlassId != null ? !bareGlassId.equals(that.bareGlassId) : that.bareGlassId != null) return false;
        if (bareProduct != null ? !bareProduct.equals(that.bareProduct) : that.bareProduct != null) return false;
        if (productIdAry != null ? !productIdAry.equals(that.productIdAry) : that.productIdAry != null) return false;
        if (productIdCf != null ? !productIdCf.equals(that.productIdCf) : that.productIdCf != null) return false;
        if (productIdOc1 != null ? !productIdOc1.equals(that.productIdOc1) : that.productIdOc1 != null) return false;
        if (productIdOc2 != null ? !productIdOc2.equals(that.productIdOc2) : that.productIdOc2 != null) return false;
        if (productIdBonging != null ? !productIdBonging.equals(that.productIdBonging) : that.productIdBonging != null)
            return false;
        if (productIdErp != null ? !productIdErp.equals(that.productIdErp) : that.productIdErp != null) return false;
        if (workorderId != null ? !workorderId.equals(that.workorderId) : that.workorderId != null) return false;
        if (workorderIdRtp != null ? !workorderIdRtp.equals(that.workorderIdRtp) : that.workorderIdRtp != null)
            return false;
        if (thickness != null ? !thickness.equals(that.thickness) : that.thickness != null) return false;
        if (maskIdAry1320 != null ? !maskIdAry1320.equals(that.maskIdAry1320) : that.maskIdAry1320 != null)
            return false;
        if (maskIdAry2320 != null ? !maskIdAry2320.equals(that.maskIdAry2320) : that.maskIdAry2320 != null)
            return false;
        if (maskIdAry3320 != null ? !maskIdAry3320.equals(that.maskIdAry3320) : that.maskIdAry3320 != null)
            return false;
        if (maskIdAry4320 != null ? !maskIdAry4320.equals(that.maskIdAry4320) : that.maskIdAry4320 != null)
            return false;
        if (maskIdAry5320 != null ? !maskIdAry5320.equals(that.maskIdAry5320) : that.maskIdAry5320 != null)
            return false;
        if (ngMarkAry != null ? !ngMarkAry.equals(that.ngMarkAry) : that.ngMarkAry != null) return false;
        if (ngMarkCf != null ? !ngMarkCf.equals(that.ngMarkCf) : that.ngMarkCf != null) return false;
        if (abnormalFlag1Ary != null ? !abnormalFlag1Ary.equals(that.abnormalFlag1Ary) : that.abnormalFlag1Ary != null)
            return false;
        if (abnormalFlag1Cf != null ? !abnormalFlag1Cf.equals(that.abnormalFlag1Cf) : that.abnormalFlag1Cf != null)
            return false;
        if (glassJudgeAry != null ? !glassJudgeAry.equals(that.glassJudgeAry) : that.glassJudgeAry != null)
            return false;
        if (glassGradeAry != null ? !glassGradeAry.equals(that.glassGradeAry) : that.glassGradeAry != null)
            return false;
        if (tftPnlGrade != null ? !tftPnlGrade.equals(that.tftPnlGrade) : that.tftPnlGrade != null) return false;
        if (glassJudgeCf != null ? !glassJudgeCf.equals(that.glassJudgeCf) : that.glassJudgeCf != null) return false;
        if (glassGradeCf != null ? !glassGradeCf.equals(that.glassGradeCf) : that.glassGradeCf != null) return false;
        if (cfPnlGrade != null ? !cfPnlGrade.equals(that.cfPnlGrade) : that.cfPnlGrade != null) return false;
        if (ocPnlGradeCt1 != null ? !ocPnlGradeCt1.equals(that.ocPnlGradeCt1) : that.ocPnlGradeCt1 != null)
            return false;
        if (ocPnlGradeCInsp != null ? !ocPnlGradeCInsp.equals(that.ocPnlGradeCInsp) : that.ocPnlGradeCInsp != null)
            return false;
        if (gradeWnsShip != null ? !gradeWnsShip.equals(that.gradeWnsShip) : that.gradeWnsShip != null) return false;
        if (ocPnlLosscodeCt1 != null ? !ocPnlLosscodeCt1.equals(that.ocPnlLosscodeCt1) : that.ocPnlLosscodeCt1 != null)
            return false;
        if (ocPnlLosscodeCInsp != null ? !ocPnlLosscodeCInsp.equals(that.ocPnlLosscodeCInsp) : that.ocPnlLosscodeCInsp != null)
            return false;
        if (polLotIdTft != null ? !polLotIdTft.equals(that.polLotIdTft) : that.polLotIdTft != null) return false;
        if (polPartNoTft != null ? !polPartNoTft.equals(that.polPartNoTft) : that.polPartNoTft != null) return false;
        if (polLotIdCf != null ? !polLotIdCf.equals(that.polLotIdCf) : that.polLotIdCf != null) return false;
        if (polPartNoCf != null ? !polPartNoCf.equals(that.polPartNoCf) : that.polPartNoCf != null) return false;
        if (ownerId != null ? !ownerId.equals(that.ownerId) : that.ownerId != null) return false;
        if (productiontype != null ? !productiontype.equals(that.productiontype) : that.productiontype != null)
            return false;
        if (ownertype != null ? !ownertype.equals(that.ownertype) : that.ownertype != null) return false;
        if (ppboxId != null ? !ppboxId.equals(that.ppboxId) : that.ppboxId != null) return false;
        if (palletId != null ? !palletId.equals(that.palletId) : that.palletId != null) return false;
        if (destCustomerId != null ? !destCustomerId.equals(that.destCustomerId) : that.destCustomerId != null)
            return false;
        if (tftStartTimestamp != null ? !tftStartTimestamp.equals(that.tftStartTimestamp) : that.tftStartTimestamp != null)
            return false;
        if (tftShippingTimestamp != null ? !tftShippingTimestamp.equals(that.tftShippingTimestamp) : that.tftShippingTimestamp != null)
            return false;
        if (cfStartTimestamp != null ? !cfStartTimestamp.equals(that.cfStartTimestamp) : that.cfStartTimestamp != null)
            return false;
        if (cfShippingTimestamp != null ? !cfShippingTimestamp.equals(that.cfShippingTimestamp) : that.cfShippingTimestamp != null)
            return false;
        if (ocStartTimestamp != null ? !ocStartTimestamp.equals(that.ocStartTimestamp) : that.ocStartTimestamp != null)
            return false;
        if (oc1BankInTimestamp != null ? !oc1BankInTimestamp.equals(that.oc1BankInTimestamp) : that.oc1BankInTimestamp != null)
            return false;
        if (oc2StartTimestamp != null ? !oc2StartTimestamp.equals(that.oc2StartTimestamp) : that.oc2StartTimestamp != null)
            return false;
        if (ocShippingTimestamp != null ? !ocShippingTimestamp.equals(that.ocShippingTimestamp) : that.ocShippingTimestamp != null)
            return false;
        if (rmatimestamp != null ? !rmatimestamp.equals(that.rmatimestamp) : that.rmatimestamp != null) return false;
        if (etlTimestamp != null ? !etlTimestamp.equals(that.etlTimestamp) : that.etlTimestamp != null) return false;
        if (dbTimestamp != null ? !dbTimestamp.equals(that.dbTimestamp) : that.dbTimestamp != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = panelId != null ? panelId.hashCode() : 0;
        result = 31 * result + (tftGlassId != null ? tftGlassId.hashCode() : 0);
        result = 31 * result + (cfGlassId != null ? cfGlassId.hashCode() : 0);
        result = 31 * result + (sn != null ? sn.hashCode() : 0);
        result = 31 * result + (lotId != null ? lotId.hashCode() : 0);
        result = 31 * result + (groupId != null ? groupId.hashCode() : 0);
        result = 31 * result + (bareGlassId != null ? bareGlassId.hashCode() : 0);
        result = 31 * result + (bareProduct != null ? bareProduct.hashCode() : 0);
        result = 31 * result + (productIdAry != null ? productIdAry.hashCode() : 0);
        result = 31 * result + (productIdCf != null ? productIdCf.hashCode() : 0);
        result = 31 * result + (productIdOc1 != null ? productIdOc1.hashCode() : 0);
        result = 31 * result + (productIdOc2 != null ? productIdOc2.hashCode() : 0);
        result = 31 * result + (productIdBonging != null ? productIdBonging.hashCode() : 0);
        result = 31 * result + (productIdErp != null ? productIdErp.hashCode() : 0);
        result = 31 * result + (workorderId != null ? workorderId.hashCode() : 0);
        result = 31 * result + (workorderIdRtp != null ? workorderIdRtp.hashCode() : 0);
        result = 31 * result + (thickness != null ? thickness.hashCode() : 0);
        result = 31 * result + (maskIdAry1320 != null ? maskIdAry1320.hashCode() : 0);
        result = 31 * result + (maskIdAry2320 != null ? maskIdAry2320.hashCode() : 0);
        result = 31 * result + (maskIdAry3320 != null ? maskIdAry3320.hashCode() : 0);
        result = 31 * result + (maskIdAry4320 != null ? maskIdAry4320.hashCode() : 0);
        result = 31 * result + (maskIdAry5320 != null ? maskIdAry5320.hashCode() : 0);
        result = 31 * result + (ngMarkAry != null ? ngMarkAry.hashCode() : 0);
        result = 31 * result + (ngMarkCf != null ? ngMarkCf.hashCode() : 0);
        result = 31 * result + (abnormalFlag1Ary != null ? abnormalFlag1Ary.hashCode() : 0);
        result = 31 * result + (abnormalFlag1Cf != null ? abnormalFlag1Cf.hashCode() : 0);
        result = 31 * result + (glassJudgeAry != null ? glassJudgeAry.hashCode() : 0);
        result = 31 * result + (glassGradeAry != null ? glassGradeAry.hashCode() : 0);
        result = 31 * result + (tftPnlGrade != null ? tftPnlGrade.hashCode() : 0);
        result = 31 * result + (glassJudgeCf != null ? glassJudgeCf.hashCode() : 0);
        result = 31 * result + (glassGradeCf != null ? glassGradeCf.hashCode() : 0);
        result = 31 * result + (cfPnlGrade != null ? cfPnlGrade.hashCode() : 0);
        result = 31 * result + (ocPnlGradeCt1 != null ? ocPnlGradeCt1.hashCode() : 0);
        result = 31 * result + (ocPnlGradeCInsp != null ? ocPnlGradeCInsp.hashCode() : 0);
        result = 31 * result + (gradeWnsShip != null ? gradeWnsShip.hashCode() : 0);
        result = 31 * result + (ocPnlLosscodeCt1 != null ? ocPnlLosscodeCt1.hashCode() : 0);
        result = 31 * result + (ocPnlLosscodeCInsp != null ? ocPnlLosscodeCInsp.hashCode() : 0);
        result = 31 * result + (polLotIdTft != null ? polLotIdTft.hashCode() : 0);
        result = 31 * result + (polPartNoTft != null ? polPartNoTft.hashCode() : 0);
        result = 31 * result + (polLotIdCf != null ? polLotIdCf.hashCode() : 0);
        result = 31 * result + (polPartNoCf != null ? polPartNoCf.hashCode() : 0);
        result = 31 * result + (ownerId != null ? ownerId.hashCode() : 0);
        result = 31 * result + (productiontype != null ? productiontype.hashCode() : 0);
        result = 31 * result + (ownertype != null ? ownertype.hashCode() : 0);
        result = 31 * result + (ppboxId != null ? ppboxId.hashCode() : 0);
        result = 31 * result + (palletId != null ? palletId.hashCode() : 0);
        result = 31 * result + (destCustomerId != null ? destCustomerId.hashCode() : 0);
        result = 31 * result + (tftStartTimestamp != null ? tftStartTimestamp.hashCode() : 0);
        result = 31 * result + (tftShippingTimestamp != null ? tftShippingTimestamp.hashCode() : 0);
        result = 31 * result + (cfStartTimestamp != null ? cfStartTimestamp.hashCode() : 0);
        result = 31 * result + (cfShippingTimestamp != null ? cfShippingTimestamp.hashCode() : 0);
        result = 31 * result + (ocStartTimestamp != null ? ocStartTimestamp.hashCode() : 0);
        result = 31 * result + (oc1BankInTimestamp != null ? oc1BankInTimestamp.hashCode() : 0);
        result = 31 * result + (oc2StartTimestamp != null ? oc2StartTimestamp.hashCode() : 0);
        result = 31 * result + (ocShippingTimestamp != null ? ocShippingTimestamp.hashCode() : 0);
        result = 31 * result + (rmatimestamp != null ? rmatimestamp.hashCode() : 0);
        result = 31 * result + (etlTimestamp != null ? etlTimestamp.hashCode() : 0);
        result = 31 * result + (dbTimestamp != null ? dbTimestamp.hashCode() : 0);
        return result;
    }
}
